classdef MultiLabelLearningByExploitingLabelDependency ...
        < MultiLabelAlgorithm ...
        & BinaryClassAlgorithm0able ...
        & ZAlgorithmable ...
        & Modelable ...
        & MultiLabelMetricable
    %MULTILABELLEARNINGBYEXPLOITINGLABELDEPENDENCY Summary of this class goes here
    %   Detailed explanation goes here
    
    properties
    end
    
    methods
        function [ this ] = MultiLabelLearningByExploitingLabelDependency(  )
            this.setName('lead');
        end
    end
    
    methods
        function [  ] = build( this, X, Y )
            
        end
        
        function [ result ] = apply( this, X, Y )
            result = [];
        end
        
        function [ result ] = run( this, train_data, train_label, ...
                test_data, test_label, dag, cost )
            svm.type = 'LibLinear';
            svm.para = cost;
%             svm = LibLinear();
%             svm.setCost(cost);
            [Outputs, Pre_Labels] = my_LEAD2(train_data, train_label', ...
                test_data, test_label', dag, svm);
            result.Y_hat = Pre_Labels';
            result.Y_out = Outputs';
        end
    end
end

